home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3c / mpconf.z / mpconf
Encoding:
Text File  |  2002-10-03  |  11.7 KB  |  265 lines

  1.  
  2.  
  3.  
  4. mmmmppppccccoooonnnnffff((((3333cccc))))                                                          mmmmppppccccoooonnnnffff((((3333cccc))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      mmmmppppccccoooonnnnffff - multiprocessing control and information
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////mmmmppppccccoooonnnnffff....hhhh>>>>
  13.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ssssyyyyssssiiiinnnnffffoooo....hhhh>>>>
  14.  
  15.      iiiinnnntttt mmmmppppccccoooonnnnffff ((((iiiinnnntttt ccccmmmmdddd,,,, ............))));;;;
  16.  
  17. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      _mmmm_pppp_cccc_oooo_nnnn_ffff provides control/information for miscellaneous multi-processor
  19.      services.  The arguments _a_r_g_1, _a_r_g_2, _a_r_g_3 are provided for command-
  20.      dependent use.
  21.  
  22.      As specified by _c_m_d, the following commands are available:
  23.  
  24.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____NNNNPPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRRSSSS
  25.           Returns the number of processors physically configured.
  26.  
  27.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____NNNNAAAAPPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRRSSSS
  28.           Returns the number of processors that are available to schedule
  29.           unrestricted processes.
  30.  
  31.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____IIIISSSSPPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____AAAAVVVVAAAAIIIILLLL
  32.           The processor number given by _a_r_g_1, interpreted as an 'int', is
  33.           checked to see if it is available and not exclusively bound by any
  34.           process and if this is true a value of _o_n_e(_1) is returned.  If the
  35.           processor is not available, a value of _z_e_r_o(_0) is returned.
  36.  
  37.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____AAAACCCCCCCCTTTT
  38.           Returns the contents of _a_b_i__s_y_s_i_n_f_o structure.  The information is
  39.           only for the processor specified by _a_r_g_1.  _a_r_g_2 points to a buffer
  40.           which will contain the contents of the structure _a_b_i__s_y_s_i_n_f_o in the
  41.           address space of the calling process and _a_r_g_3 specifies the maximum
  42.           number of bytes to transfer.  If successful, the command returns the
  43.           number of bytes transferred.
  44.  
  45.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____TTTTOOOOTTTTAAAACCCCCCCCTTTT
  46.           Returns the contents of the _a_b_i__s_y_s_i_n_f_o structure.  The information
  47.           is summed across all processors before it is returned.  _a_r_g_1 points
  48.           to a buffer which will contain the contents of the structure
  49.           _a_b_i__s_y_s_i_n_f_o and _a_r_g_2 specifies the maximum number of bytes to
  50.           transfer.  If successful, the command returns the number of bytes
  51.           transferred.
  52.  
  53.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____PPPPIIIIDDDD
  54.           If the process number specified in _a_r_g_1, interpreted as 'pid_t', is
  55.           bound to a processor, then _o_n_e(_1) is returned and the integer
  56.           pointer in _a_r_g_2, interpreted as 'int *', is used to store the
  57.           processor number to which the process is bound.  There is no
  58.           indication whether the binding in effect is exclusive or non-
  59.           exclusive.  The command returns _z_e_r_o(_0) if the process is not bound.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. mmmmppppccccoooonnnnffff((((3333cccc))))                                                          mmmmppppccccoooonnnnffff((((3333cccc))))
  71.  
  72.  
  73.  
  74.           If _a_r_g_1 contains an invalid process number, then a -_1 is returned
  75.           and _e_r_r_n_o is set to reflect the error.
  76.  
  77.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____BBBBIIIINNNNDDDD
  78.           Bind a process number pointed to _a_r_g_2, interpreted as 'pid_t *', to
  79.           the processor number in _a_r_g_1, interpreted as 'int'.  The process is
  80.           restricted to run only on this processor.  The processor may
  81.           continue to run other processes.  Note that the process may still
  82.           run on other processors, briefly, to perform I/O or other hardware-
  83.           specific actions.
  84.  
  85.           If a previous binding was in effect for the process number pointed
  86.           to by _a_r_g_2, and the binding was not exclusive, then new binding
  87.           replaces the previous one.  If the previous binding was exclusive,
  88.           the command fails.
  89.  
  90.           If a previous exclusive binding is in effect for this processor, it
  91.           is unavailable to be reserved, and the command fails.  The command
  92.           returns a _z_e_r_o(_0) when successful.
  93.  
  94.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____UUUUNNNNBBBBIIIINNNNDDDD
  95.           Unbind a process number pointed to by _a_r_g_1, interpreted as 'pid_t
  96.           *', making it free to run on any processor.
  97.           _MIPS_MP_PROCESSOR_UNBIND cannot unbind exclusively bound processes.
  98.           _MIPS_MP_PROCESSOR_EXUNBIND should be used for this purpose.
  99.  
  100.      ____MMMMIIIIPPPPSSSS____MMMMPPPP____PPPPRRRROOOOCCCCEEEESSSSSSSSOOOORRRR____EEEEXXXXBBBBIIIINNNNDDDD
  101.           Exclusively bind a process number pointed to by _a_r_g_2, interpreted as
  102.           'pid_t *', to the processor number specified by _a_r_g_1, interpreted as
  103.           'int'.  The process is restricted to run only on this processor.
  104.           The processor may still run on other processors, briefly, to perform
  105.           I/O or other hardware-specific actions.  The specified processor is
  106.           restricted to run only those processes that are either exclusively
  107.           bound to it, or for which it must provide service due to hardware
  108.           necessity, for as long as the exclusive binding is in effect.  This
  109.           command requires superuser authority.
  110.  
  111.           If a previous binding was in effect for pid, the new binding
  112.           replaces the previous one.
  113.  
  114.           If a previous non-exclusive binding for a process other than the
  115.           process number pointed to by _a_r_g_2 is in effect for this processor,
  116.           it is unavailable to be reserved, and the command fails.
  117.  
  118.           The command returns _z_e_r_o() when successful.
  119.  
  120. Possible errors from _mmmm_pppp_cccc_oooo_nnnn_ffff are:
  121.  
  122.      [EPERM]
  123.            The effective user ID is not superuser.  Many of the commands
  124.            require superuser privilege.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. mmmmppppccccoooonnnnffff((((3333cccc))))                                                          mmmmppppccccoooonnnnffff((((3333cccc))))
  137.  
  138.  
  139.  
  140.      [EPERM]
  141.            The user ID of the sending process is not super-user, and its real
  142.            or effective user ID does not match the real, saved,  or effective
  143.            user ID of the receiving process.
  144.  
  145.      [ESRCH]
  146.            No process corresponding to that specified by a _MMMM_PPPP______MMMM_UUUU_SSSS_TTTT_RRRR_UUUU_NNNN______PPPP_IIII_DDDD,
  147.            _MMMM_PPPP______GGGG_EEEE_TTTT_MMMM_UUUU_SSSS_TTTT_RRRR_UUUU_NNNN______PPPP_IIII_DDDD, or _MMMM_PPPP______RRRR_UUUU_NNNN_AAAA_NNNN_YYYY_WWWW_HHHH_EEEE_RRRR_EEEE______PPPP_IIII_DDDD could be found.
  148.  
  149.      [EEXIST]
  150.            An attempt was made to create a new processor set, but the set
  151.            already exists in the system.
  152.  
  153.      [EINVAL]
  154.            The processor set named by a _MMMM_PPPP______PPPP_SSSS_EEEE_TTTT command does not exist.
  155.  
  156.      [EINVAL]
  157.            The bit vector given for the _MMMM_PPPP_PPPP_SSSS______CCCC_RRRR_EEEE_AAAA_TTTT_EEEE subcommand of the _MMMM_PPPP______PPPP_SSSS_EEEE_TTTT
  158.            command conflicts with a reserved value.
  159.  
  160.      [EBUSY]
  161.            An attempt was made to delete a processor set, but the set is
  162.            currently in use by the system.
  163.  
  164.      [EINVAL]
  165.            The processor named by a _MMMM_PPPP______EEEE_MMMM_PPPP_OOOO_WWWW_EEEE_RRRR, _MMMM_PPPP______RRRR_EEEE_SSSS_TTTT_RRRR_IIII_CCCC_TTTT, _MMMM_PPPP______PPPP_SSSS_EEEE_TTTT, _MMMM_PPPP______CCCC_LLLL_OOOO_CCCC_KKKK
  166.            or _MMMM_PPPP______SSSS_AAAA_GGGG_EEEE_TTTT_1111 command does not exist.
  167.  
  168.      [EINVAL]
  169.            The _c_m_d argument is invalid.
  170.  
  171.      [EINVAL]
  172.            The _a_r_g_1 argument to a _MMMM_PPPP______KKKK_EEEE_RRRR_NNNN_AAAA_DDDD_DDDD_RRRR command is invalid.
  173.  
  174.      [EINVAL]
  175.            An attempt was made via _MMMM_PPPP______MMMM_UUUU_SSSS_TTTT_RRRR_UUUU_NNNN or _MMMM_PPPP______MMMM_UUUU_SSSS_TTTT_RRRR_UUUU_NNNN______PPPP_IIII_DDDD to move a
  176.            process owning a CC sync register from the cpu controlling the CC
  177.            sync register.
  178.  
  179.      [EINVAL]
  180.            The target of the _MMMM_PPPP______GGGG_EEEE_TTTT_MMMM_UUUU_SSSS_TTTT_RRRR_UUUU_NNNN command has not been set to run on
  181.            a specific processor.
  182.  
  183.      [EBUSY]
  184.            An attempt was made to restrict the only unrestricted processor or
  185.            to restrict the master processor.
  186.  
  187.      [EFAULT]
  188.            An invalid buffer address has been supplied by the calling process.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. mmmmppppccccoooonnnnffff((((3333cccc))))                                                          mmmmppppccccoooonnnnffff((((3333cccc))))
  203.  
  204.  
  205.  
  206.      [ENOMEM]
  207.            Unable to obtain enough dynamic memory.
  208.  
  209. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  210.      _ssss_yyyy_ssss_mmmm_pppp(2)
  211.  
  212. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  213.      Upon successful completion, the _c_m_d dependent data is returned.
  214.      Otherwise, a value of -1 is returned and _e_r_r_n_o is set to indicate the
  215.      error.
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.